﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using AppWeb.Componentes.DAReclamos.Model;
using BL = AppWeb.Componentes.BLReclamos;

namespace AppWeb.Componentes.Reclamos.Areas.AtencionReclamos.Controllers
{
    public class AnalistaController : Controller
    {
        //
        // GET: /AtencionReclamos/Analista/
        
        public ActionResult Index()
        {
            Response.Cache.SetNoStore();
            Response.Cache.SetAllowResponseInBrowserHistory(false);
            if (Session["Usuario"] == null)
            {
                Session.Clear();
                return RedirectToAction("Index", "Home", new{ area=""});
            }

            return View();
        }

        
        public ActionResult ReclamoListado(int analista_id, int? tipo_id, int? estado_id, DateTime? fecha_atencion_inicio)
        {
            ViewBag.ListadoReclamos = BL.BLReclamo.ListadoReclamoAnalista(analista_id, tipo_id, estado_id, fecha_atencion_inicio);
            return PartialView();
        }

   
        public ActionResult ReclamoMantenimiento(int reclamo_id, int cliente_id)
        {
            ViewBag.Reclamo = BL.BLReclamo.ObtenerReclamo(reclamo_id);
            ViewBag.Cliente = BL.BLReclamo.ObtenerCliente(cliente_id);
            ViewBag.Estados = BL.BLReclamo.ListadoEstados();
            ViewBag.Tipos = BL.BLReclamo.ListadoTipos();
            return PartialView();
        }

        
        public ActionResult RegistrarReclamo(FormCollection form)
        {

            bool exito = false;
            var reclamo = BL.BLReclamo.ObtenerReclamo(Convert.ToInt32(form["reclamo_id"]));

            reclamo.estado_id = Convert.ToInt32(form["estado_id"]);
            reclamo.porcentaje_avance = Convert.ToInt32(form["porcentaje_avance"]);
            reclamo.solucion = form["solucion"];

            reclamo = BL.BLReclamo.Registrar(reclamo);
            reclamo = BL.BLReclamo.ObtenerReclamo(reclamo.id);

            if (reclamo != null)
            {
                exito = true;
            }

            var js = new JavaScriptSerializer();
            var result = new[] {exito.ToString(CultureInfo.InvariantCulture), reclamo.estado_reclamo_nombre, reclamo.porcentaje_avance.ToString(CultureInfo.InvariantCulture)};
            return Content(js.Serialize(result));
        }

    }



}
